package com.ctg.payroll2.service.xlsImport;

import java.util.List;

import com.ctg.platform.util.Page;

/**
 * @author sami
 *
 */
@SuppressWarnings("unchecked")
public interface ExeclCustomizeService {
	/**
	 * 新增 PublicMaster
	 * 
	 * @param obj
	 *            对应Bean
	 */
	public void insertPublicMaster(Object obj);

	/**
	 * 新增 PublicDetailsl
	 * 
	 * @param obj
	 *            对应Bean
	 */
	public void insertPublicDetailsl(Object obj);

	/**
	 * 新增 InterFaceMaster
	 * 
	 * @param obj
	 *            对应Bean
	 */
	public void insertInterFaceMaster(Object obj);

	/**
	 * 新增 InterFaceDetails
	 * 
	 * @param obj
	 *            对应Bean
	 */
	public void insertInterFaceDetailsl(Object obj);

	/**
	 * 删除PublicMaster
	 * 
	 * @param obj
	 */
	public void deletePublicMaster(Object obj);

	/**
	 * 删除PublicDetailsl
	 * 
	 * @param obj
	 */
	public void deletePublicDetailsl(Object obj);

	/**
	 * 删除 InterFaceMaster
	 * 
	 * @param obj
	 */
	public void deleteInterFaceMaster(Object obj);

	/**
	 * 删除 InterFaceDetailsl
	 * 
	 * @param obj
	 */
	public void deleteInterFaceDetailsl(Object obj);

	/**
	 * 修改 PublicMaster
	 */
	public void updatePublicMaster(Object obj);

	/**
	 * 修改PublicDetailsl
	 * 
	 * @param obj
	 */
	public void updatePublicDetailsl(Object obj);

	/**
	 * 修改InterFaceMaster
	 * 
	 * @param obj
	 */
	public void updateInterFaceMaster(Object obj);

	/**
	 * 修改 InterFaceDetailsl
	 * 
	 * @param obj
	 */
	public void updateInterFaceDetailsl(Object obj);

	/**
	 * @param paraMap
	 * @param start
	 * @param limit
	 * @return publicMaster查询结果
	 */
	public Page queryPublicMaster(Object paraMap, Integer start, Integer limit);

	/**
	 * @param paraMap
	 * @param start
	 * @param limit
	 * @return PublicDetailsl查询结果
	 */
	public Page queryPublicDetailsl(Object paraMap, Integer start, Integer limit);

	/**
	 * @param paraMap
	 * @param start
	 * @param limit
	 * @return InterfaceMaster查询结果
	 */
	public Page queryInterfaceMaster(Object paraMap, Integer start,
			Integer limit);

	/**
	 * @param paraMap
	 * @param start
	 * @param limit
	 * @return InterfaceDetails查询结果
	 */
	public Page queryInterfaceDetailsl(Object paraMap, Integer start,
			Integer limit);

	/**
	 * Sami 根据Json字符串,Class类型, 参数名获取相应的beanList
	 * 
	 * @param jstr
	 *            json字符串
	 * @param clazz
	 *            需要转化的类型
	 * @param objname
	 *            参数名
	 * @return 相应bean的List
	 */
	public List<Object> getBeanListfromJson(String jstr, Class clazz,
			String objname);

	/**
	 * 根据Json字符串,Class类型, 参数名获取相应的bean
	 * 
	 * @param jstr
	 *            json字符串
	 * @param clazz
	 *            需要转化的类型
	 * @param objname
	 *            参数名
	 * @return 相应的Bean
	 */
	public Object getBeanfromJson(String jstr, Class clazz, String objname);

	/**
	 * @return 返回一个序列(直限用与Oracle) 
	 */
	public Integer getNewId();

	boolean deleteByExPublicId(int id);

	/**
	 * @param paraMap
	 * @param start
	 * @param limit
	 * @return 返回PayClass数据
	 */
	public Page queryPayClassByCompanyCode(Object paraMap, Integer start,
			Integer limit);

	/**
	 * @param paraMap
	 * @param start
	 * @param limit
	 * @return 返回PayClassItems数据
	 */
	public Page queryPayClassItemsByPayClassId(Object paraMap, Integer start,
			Integer limit);

	/**
	 * @param paraMap
	 * @param start
	 * @param limit
	 * @return 返回Social数据
	 */
	public Page querySocialByCompanyCode(Object paraMap, Integer start,
			Integer limit);

	/**
	 * 根据exIntefaceId 删除InterfaceDetail
	 * 
	 * @param obj
	 * @return Boolean 是否删除成功
	 */
	public Boolean deleteInterfacedetailByexIntefaceId(Object obj);

}
